n/a
n/a
The present invention relates to data communication networks and more specifically to a method and apparatus for transporting a plurality of smaller packets within a container to reduce the number of switching operations that need to be performed within the forwarding engine of a network switch.
In recent years the use of packet switched networks for the communication of data, voice and video has become relatively common. Such networks typically include a plurality of network switching devices that are selectively interconnected by communication links. Each network switching device has a plurality of input ports for receiving information from corresponding communication links and a plurality of output ports for forwarding information from the respective network switching devices. Information is conveyed in packets from a source end station such as a workstation, a storage device, or any other data source to a destination end station through selected network switching devices. Information contained within a header field of the packet is employed upon receipt at an input port of the respective network device at which the packet is received to identify the proper output port for packet forwarding from that network device.
While some packet switched data, such as email, is insensitive to jitter and delay variations in the transmission path from the source to the destination, the transmission of voice and video in real time requires that jitter and delay within the network be held within certain limits. To deal with such limitations, network protocols such as the Asynchronous Transfer Mode (ATM) protocol were developed to provide different Quality of Service (QoS) levels to be applied to different data flows based upon the bandwidth, jitter and delay requirements for the respective connections. In the ATM environment, a 53-byte packet employing a 5-byte header was adopted. By specifying a short packet length, QoS requirements could be administered within the network devices.
However, the necessity to determine the output port for large numbers of small packets has placed a substantial burden on the network switching devices, and more particularly, on the forwarding engines or crossbar switches, within such devices as the increase in transmission speeds across the communication links has outpaced the increases in clock speeds within the network switching devices.
It would therefore be desirable to provide a technique that reduces the burden on the forwarding engine of a network switching device within a communication network by reducing the number of switching operations that need to be performed.
In accordance with the present invention, a method and system are disclosed for transmitting a plurality of packets over a data communications network as a single larger packet that includes a header portion and at least one container portion. In one embodiment, the single larger packet includes a Multi-Protocol Label Switching (MPLS) shim header. The container includes a sequence of triplets of form Type (T), Length (L) and Value (V). The TLV triplets may be of variable length as the length of the Value (V) within each triplet may vary. The Type field is a fixed length field and includes a bit that indicates if the particular packet is the last packet or container within the larger container. The Length field is a fixed length field that indicates the Length of the Value field that immediately follows the Length field. The Value field represents the payload associated with a TLV triplet. The Value field may contain a header and other TLV triplets and may contain additional containers or packets.
The packing of a container is performed in a series of stages as packets arrive at a network switching device. During these stages, the container is assembled as packets arrive at a network switching device that constitutes an aggregator node. The aggregator assembles within a larger packet packets or containers that have the same QoS criteria and are destined for the same location (at least along a predetermined network path).
Timers are maintained at each aggregator node for each packet being assembled. The timers measure the time from the arrival of the first packet in the respective container. In the event the timer exceeds a predetermined timer threshold, the respective container is closed and the container is scheduled for transmission. The timer thereby serves to prevent the system from introducing excessive jitter.
A size threshold is established for each container being assembled. The size threshold defines the maximum allowable size for the respective container. In the event the addition of the next packet or container to the larger container would cause the overall container to exceed the size threshold, the container is closed and scheduled for transmission. Finally a minimum desired fill level threshold may be maintained.
Each network switching device within the transmission path that receives a container that is to be forwarded need only inspect the header to determine the output port to be used for forwarding of the container and all of the associated containers and packets making up the received container. Consequently the forwarding engine need only perform a single determination of the output port to be employed rather than the number of operations that would be necessary if a forwarding decision needed to be made for each packet within the container.
Containers are unpacked at appropriate devices along the communications path so that the packets may be properly routed to the ultimate destination.
As evident from the above description, the container may represent a hierarchical structure in which packets within a container may also include containers that hold other packets or containers. Any number of tiers of containers may thus be supported.
Other features, aspects and advantages of the presently described method and system for transmitting messages within a container will be apparent to those of ordinary skill in the art from the Detailed Description of the Invention that follows.